package com.wl.mybootwork4.common;

import lombok.Data;

/**
 * @author wl
 * @version 1.0
 * @date 2022/6/13
 * @description:
 */
@Data
public class ResponseResult<T> {
    
    
    /**
     * 当前返回的状态 1代表成功 0代表失败
     */
    private Integer code;
    
    /**
     * 返回的提示信息
     */
    private String msg;
    
    /**
     * 返回的值
     */
    
    private T data;
    
    
    /**
     * 构造方法 
     */
    
    
    public ResponseResult() {
    }

    public ResponseResult(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public ResponseResult(String msg, T data) {
        this.msg = msg;
        this.data = data;
    }


    public ResponseResult(Integer code, T data) {
        this.code = code;
        this.data = data;
    }


    public ResponseResult(Integer code, String msg, T data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }
    
    
    
    /**
     * 返回成功的信息
     * 系统的消息
     */
    public ResponseResult createSuccess(){
        return new ResponseResult(ResultCode.SUCCESS.getCode(),ResultCode.SUCCESS.getMsg());
    }

    /**
     * 返回成功的信息
     * 自定义消息
     */
    public ResponseResult createSuccess(String msg){
        return new ResponseResult(ResultCode.SUCCESS.getCode(),msg);
    }


    /**
     * 返回成功的信息
     * 自定义消息
     * 自定义对象
     */
    public ResponseResult createSuccess(String msg,T data){
        return new ResponseResult(ResultCode.SUCCESS.getCode(),msg,data);
    }

    /**
     * 返回成功的信息
     * 自定义对象
     */
    public ResponseResult createSuccess(T data){
        return new ResponseResult(ResultCode.SUCCESS.getCode(),ResultCode.SUCCESS.getMsg(),data);
    }




    /**
     * 返回失败的信息
     * 系统的消息
     */
    public ResponseResult createFail(){
        return new ResponseResult(ResultCode.FAIL.getCode(),ResultCode.FAIL.getMsg());
    }

    /**
     * 返回失败的信息
     * 自定义消息
     */
    public ResponseResult createFail(String msg){
        return new ResponseResult(ResultCode.FAIL.getCode(),msg);
    }


    /**
     * 返回失败的信息
     * 自定义消息
     * 自定义对象
     */
    public ResponseResult createFail(String msg,T data){
        return new ResponseResult(ResultCode.FAIL.getCode(),msg,data);
    }

    /**
     * 返回失败的信息
     * 自定义对象
     */
    public ResponseResult createFail(T data){
        return new ResponseResult(ResultCode.FAIL.getCode(),ResultCode.FAIL.getMsg(),data);
    }

}
